#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

#ifndef DATO_H_
#define DATO_H_

/*
 * Abstracción del dato. Cualquier otra clase puede heredar de Dato, y redefinir
 * el método toChar(serializar) y getTamanio. Por comodidad y utilidad, la clase no es abstracta y
 * tiene una implementación básica: es un contenedor de una cadena de bytes.
 */

class Dato {
public:
	Dato();
	virtual char* toChar();
	virtual bool operator==(Dato&);
	virtual unsigned int getTamanio();
	virtual string mostrar();
	virtual ~Dato();
protected:
	unsigned int tamanio;
};

#endif /* DATO_H_ */
